package projeto;

import java.io.*;
import java.util.*;

public class CadastrarContato {
	private String nome=null,endereco=null,dataDeAniversario=null;
	private List<CadastrarContato> contatos;
	private Formatter output;
	
	/**
	 * construtor default
	 */
	public CadastrarContato(){
				
	}
	/**
	 * construtor da classe 
	 * @param nome
	 * @param endereco
	 * @param dataAniversario
	 */
	public CadastrarContato(String nome,String endereco,String dataAniversario){
		this.nome = nome;
		this.dataDeAniversario = dataAniversario;
		this.endereco = endereco;
	}
	/**
	 * metodo get nome
	 * @return nome
	 */
	public String getNome(){
		return this.nome;
	}
	/**
	 * metodo setNome
	 * modifica o nome
	 * @param novoNome
	 */
	public void setNome(String novoNome){
		this.nome = novoNome;
	}
	
	/**
	 * metodo getEndereco
	 * @return endereço
	 */
	public String getEndereço(){
		return this.endereco;
	}
	/**
	 * metodoSetEndereco
	 * modifica o endereço
	 * @param novoEndereço
	 */
	public void setEndereço(String novoEndereço){
		this.endereco = novoEndereço;
	}
	/**
	 * metodo getDataDeAniversario
	 * @return aniversario
	 */
	public String getDatadeAniversario(){
		return this.dataDeAniversario;
	}
	/**
	 * modifica a data de aniversario
	 * @param novaData
	 */
	public void setDataDeAniversario(String novaData){
		this.dataDeAniversario = novaData;
		
	}
	/**
	 * abre o arquivo
	 * @throws FileNotFoundException
	 */
	public void openFile() throws FileNotFoundException{
		try{
			output = new Formatter("Contato.txt");
		}catch(SecurityException securityException){
			System.err.println(" sem acesso a este arquivo");
			System.exit(1);
		}catch(FileNotFoundException filesNotFoundException){
			System.err.println("Error na criacao do arquivo");
			System.exit(1);
		}
		
	}
	/**
	 * adiciona o contato
	 */
	public void addContato(){
		CadastrarContato contato = new CadastrarContato(getNome(), getEndereço(),getDatadeAniversario());
		
		Scanner input = new Scanner( System.in);
		System.out.println("Nome:");
		while(input.hasNext()){
			try{
				
				contato.setNome(input.nextLine());
				System.out.println("Endereço:");
				contato.setEndereço(input.nextLine());
				System.out.println("Data de Aniversario:");
				contato.setDataDeAniversario(input.nextLine());
				
				output.format("%s %s %s\n", contato.getNome(),contato.getEndereço(),contato.getDatadeAniversario());
				
			
			}catch(FormatterClosedException formatterClosedException){
				System.err.println(" error escrevendo no arquivo");
				return;
			}catch(NoSuchElementException elementException){
				System.err.println("invalid input.Tente novamente");
				input.nextLine();
			}if (contato.getDatadeAniversario()!= null){
				break;
			}
		}
	}
	/**
	 * fecha o arquivo
	 */
	public void closeFile(){
		if (output != null){
			output.close();
		}
	}
	
	public static void main(String[] args) throws FileNotFoundException {
		CadastrarContato contato = new CadastrarContato();
		
		contato.openFile();
		contato.addContato();
		contato.closeFile();
		
	}
	
	
}
	
	


